/*
 * Decompiled with CFR 0.150.
 * 
 * Could not load the following classes:
 *  cn.hutool.core.collection.CollUtil
 *  cn.hutool.core.date.DateUtil
 *  cn.hutool.core.util.ObjectUtil
 *  cn.hutool.core.util.StrUtil
 *  com.alibaba.fastjson.JSON
 *  com.alibaba.fastjson.JSONObject
 *  de.felixroske.jfxsupport.FXMLController
 *  javafx.beans.value.ChangeListener
 *  javafx.beans.value.ObservableValue
 *  javafx.collections.FXCollections
 *  javafx.collections.ObservableList
 *  javafx.event.ActionEvent
 *  javafx.event.EventHandler
 *  javafx.fxml.FXML
 *  javafx.fxml.Initializable
 *  javafx.geometry.Insets
 *  javafx.scene.Node
 *  javafx.scene.control.Alert
 *  javafx.scene.control.Alert$AlertType
 *  javafx.scene.control.Button
 *  javafx.scene.control.CheckBox
 *  javafx.scene.control.ChoiceBox
 *  javafx.scene.control.ComboBox
 *  javafx.scene.control.DatePicker
 *  javafx.scene.control.Pagination
 *  javafx.scene.control.ScrollPane
 *  javafx.scene.control.TableCell
 *  javafx.scene.control.TableColumn
 *  javafx.scene.control.TableView
 *  javafx.scene.control.TextField
 *  javafx.scene.control.cell.PropertyValueFactory
 *  javafx.scene.control.cell.TextFieldTableCell
 *  javafx.scene.input.KeyCode
 *  javafx.scene.input.KeyEvent
 *  javafx.scene.layout.HBox
 *  javafx.scene.layout.VBox
 *  javafx.scene.text.Text
 *  javafx.stage.Modality
 *  javafx.util.Callback
 *  javafx.util.StringConverter
 *  org.springframework.beans.factory.annotation.Autowired
 *  org.springframework.util.CollectionUtils
 */
package com.gys.controller.examine;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gys.GysApplication;
import com.gys.common.business.ExamineUtil;
import com.gys.common.business.SaleScheduleSettingUtil;
import com.gys.common.data.HttpJson;
import com.gys.common.data.KeyValue;
import com.gys.common.data.PageInfo;
import com.gys.common.util.CacheUtil;
import com.gys.common.util.CommonUtil;
import com.gys.common.util.ConstUtil;
import com.gys.controller.BaseController;
import com.gys.controller.index.IndexController;
import com.gys.data.accept.AcceptOutData;
import com.gys.data.accept.GsdcEmp;
import com.gys.data.deviceCheck.GsdcStatus;
import com.gys.data.examine.GetExamineDetailOutData;
import com.gys.data.examine.GetExamineInData;
import com.gys.data.examine.GetExamineOutData;
import com.gys.data.example.GetLoginStoreOutData;
import com.gys.data.example.GetUserOutData;
import com.gys.data.saleScheduleSetting.GetSaleScheduleInData;
import com.gys.view.examine.AddView;
import de.felixroske.jfxsupport.FXMLController;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.net.URL;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.ResourceBundle;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.geometry.Insets;
import javafx.scene.Node;
import javafx.scene.control.Alert;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ChoiceBox;
import javafx.scene.control.ComboBox;
import javafx.scene.control.DatePicker;
import javafx.scene.control.Pagination;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.TextField;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.control.cell.TextFieldTableCell;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.HBox;
import javafx.scene.layout.VBox;
import javafx.scene.text.Text;
import javafx.stage.Modality;
import javafx.util.Callback;
import javafx.util.StringConverter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;

@FXMLController
public class ExamineController
extends BaseController
implements Initializable {
    private final int pageSize = ConstUtil.DEFAULT_PAGESIZE;
    private final int defaultPageCount = ConstUtil.DEFAULT_PAGECOUNT;
    private ObservableList<GetExamineOutData> observableTableList = FXCollections.observableArrayList(new ArrayList());
    private ObservableList<GetExamineDetailOutData> detailObservableTableList = FXCollections.observableArrayList(new ArrayList());
    @FXML
    private ScrollPane scrollPane;
    @FXML
    private VBox vBox;
    @FXML
    private Button enterBtn;
    @FXML
    private Button approveBtn;
    @FXML
    private HBox queryHbox;
    @FXML
    private HBox queryHbox1;
    @FXML
    private HBox boxView;
    @FXML
    private TextField voucherIdQuery;
    @FXML
    private TextField amountQuery;
    @FXML
    private TextField bathCodeQuery;
    @FXML
    private TextField productCodeQuery;
    @FXML
    private ChoiceBox<GsdcEmp> acceptPeopleQuery;
    @FXML
    private ChoiceBox<GsdcStatus> statusQuery;
    @FXML
    private DatePicker updateDateQuery;
    @FXML
    private DatePicker acceptDateQuery;
    @FXML
    private TableView<GetExamineOutData> tableView;
    @FXML
    private TableView<GetExamineDetailOutData> tableViewTwo;
    @FXML
    private TableColumn<GetExamineOutData, CheckBox> checkBox;
    @FXML
    private TableColumn<GetExamineOutData, String> index;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehVoucherId;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehDate;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehFrom;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehTo;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehType;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehStatus;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehTotalAmt;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehTotalQty;
    @FXML
    private TableColumn<GetExamineOutData, String> gsehRemaks;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedSerial;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedProId;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proName;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proPrice;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedBatchNo;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedValidDate;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedRecipientQty;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedQualifiedQty;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedUnqualifiedQty;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedUnqualifiedCause;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedEmp;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedResult;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proDate;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proPlace;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proForm;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proUnit;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proSpecs;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proRegisterNo;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> proFactoryName;
    @FXML
    private TableColumn<GetExamineDetailOutData, String> gsedStockStatus;
    @FXML
    private Pagination pagination;
    @FXML
    private Insets tableViewInsets;
    @Autowired
    private IndexController indexController;
    List<GetUserOutData> outDataList = new ArrayList<GetUserOutData>();
    private ObservableList<String> empOptions;
    List<String> emps = new ArrayList<String>();
    Map<String, GetUserOutData> empsMap = new HashMap<String, GetUserOutData>();
    private ObservableList<KeyValue> reasonOptions;
    private ObservableList<KeyValue> resultOptions;

    public void initialize(URL location, ResourceBundle resources) {
        this.scrollPane.setPrefWidth(this.getContentWidth());
        this.scrollPane.setPrefHeight(this.getContentHeight());
        this.vBox.setPrefWidth(this.getContentWidth());
        this.vBox.setPrefHeight(this.getContentHeight());
        this.tableView.setPrefWidth(this.getContentWidth());
        this.tableViewTwo.setPrefWidth(this.getContentWidth());
        this.pagination.setPrefWidth(this.getContentWidth());
        this.statusQuery.getItems().addAll(this.getAllStatus());
        this.statusQuery.converterProperty().set(new StringConverter<GsdcStatus>(){

            public String toString(GsdcStatus object) {
                return object.getName();
            }

            public GsdcStatus fromString(String string) {
                return null;
            }
        });
        ArrayList<KeyValue> reasonOptionList = new ArrayList<KeyValue>();
        reasonOptionList.add(new KeyValue("\u65e0", "0"));
        reasonOptionList.add(new KeyValue("\u8d28\u91cf\u95ee\u9898", "1"));
        reasonOptionList.add(new KeyValue("\u6548\u671f\u5546\u54c1", "2"));
        reasonOptionList.add(new KeyValue("\u6279\u53f7\u4e0d\u7b26", "3"));
        reasonOptionList.add(new KeyValue("\u5176\u4ed6", "4"));
        this.reasonOptions = FXCollections.observableArrayList(reasonOptionList);
        ArrayList<KeyValue> resultOptionList = new ArrayList<KeyValue>();
        resultOptionList.add(new KeyValue("\u5408\u683c", "0"));
        resultOptionList.add(new KeyValue("\u4e0d\u5408\u683c", "1"));
        this.resultOptions = FXCollections.observableArrayList(resultOptionList);
        StringConverter converter = CommonUtil.dataPickerFormat("yyyyMMdd");
        this.updateDateQuery.setConverter(converter);
        this.acceptDateQuery.setConverter(converter);
        this.pagination.setPageFactory((Callback)new Callback<Integer, Node>(){

            public Node call(Integer pageNum) {
                return ExamineController.this.initTable(pageNum, "");
            }
        });
        this.emps.clear();
        this.outDataList.clear();
        this.empsMap.clear();
        GetSaleScheduleInData inData = new GetSaleScheduleInData();
        inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
        inData.setGsegBrId(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
        HttpJson httpJson = SaleScheduleSettingUtil.queryUser(CommonUtil.convertToMap(inData));
        if (!httpJson.isSuccess()) {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
            alert.showAndWait();
            return;
        }
        this.outDataList = JSON.parseArray((String)httpJson.getMsg(), GetUserOutData.class);
        ArrayList list = new ArrayList();
        this.outDataList.forEach(item -> {
            this.emps.add(item.getLoginName());
            this.empsMap.put(item.getLoginName(), (GetUserOutData)item);
            GsdcEmp emp = new GsdcEmp(item.getUserId(), item.getLoginName());
            list.add(emp);
        });
        this.empOptions = FXCollections.observableArrayList(this.emps);
        this.acceptPeopleQuery.getItems().addAll(list);
        this.acceptPeopleQuery.converterProperty().set(new StringConverter<GsdcEmp>(){

            public String toString(GsdcEmp object) {
                return object.getName();
            }

            public GsdcEmp fromString(String string) {
                return null;
            }
        });
    }

    @Override
    public void init() {
        this.indexController.scrollContentPane.setOnKeyReleased((EventHandler)new EventHandler<KeyEvent>(){

            public void handle(KeyEvent event) {
                if (event.getCode() == KeyCode.F1) {
                    ExamineController.this.openAdd();
                    return;
                }
                if (event.getCode() == KeyCode.F8) {
                    ExamineController.this.approve();
                    return;
                }
                if (event.getCode() == KeyCode.ENTER) {
                    ExamineController.this.searchData();
                }
            }
        });
    }

    @FXML
    private void searchData() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        if (StrUtil.isBlank((CharSequence)this.voucherIdQuery.getText().trim()) && ObjectUtil.isNull(this.statusQuery.getValue()) && ObjectUtil.isNull(this.acceptPeopleQuery.getValue()) && StrUtil.isBlank((CharSequence)this.productCodeQuery.getText().trim()) && ObjectUtil.isNull(this.updateDateQuery.getValue()) && ObjectUtil.isNull(this.acceptDateQuery.getValue()) && StrUtil.isBlank((CharSequence)this.amountQuery.getText().trim()) && StrUtil.isBlank((CharSequence)this.bathCodeQuery.getText().trim())) {
            alert.setContentText("\u5fc5\u987b\u81f3\u5c11\u586b\u5199\u4e00\u9879\u5185\u5bb9\u8fdb\u884c\u67e5\u8be2\uff01");
            alert.showAndWait();
            return;
        }
        this.initTable(0, "");
        this.pagination.setCurrentPageIndex(0);
    }

    @FXML
    private void reset() {
        this.voucherIdQuery.clear();
        this.amountQuery.clear();
        this.statusQuery.setValue(null);
        this.updateDateQuery.setValue(null);
        this.productCodeQuery.clear();
        this.bathCodeQuery.clear();
        this.acceptPeopleQuery.setValue(null);
        this.acceptDateQuery.setValue(null);
    }

    @FXML
    private void openAdd() {
        GysApplication.showView(AddView.class, (Modality)Modality.APPLICATION_MODAL);
    }

    @FXML
    private void approve() {
        Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", null);
        List<Integer> indexList = this.getSelectIndex();
        if (ObjectUtil.isEmpty(indexList)) {
            alert.setContentText("\u8bf7\u9009\u62e9\u8bb0\u5f55");
            alert.showAndWait();
            return;
        }
        GetExamineInData inData = new GetExamineInData();
        for (Integer index : indexList) {
            GetExamineOutData outData = (GetExamineOutData)this.observableTableList.get(index - 1);
            inData.setGsehVoucherId(outData.getGsehVoucherId());
        }
        inData.setExamineDetailInDataList((List<GetExamineDetailOutData>)this.detailObservableTableList);
        HttpJson rsp = ExamineUtil.approve(inData);
        if (rsp.isSuccess()) {
            alert.setContentText("\u5ba1\u6838\u6210\u529f!");
            alert.showAndWait();
            this.initTable(this.pagination.getCurrentPageIndex(), "");
        } else {
            alert.setContentText(rsp.getMsg());
            alert.showAndWait();
        }
    }

    public TableView<GetExamineOutData> initTable(int pageNum, String gsahPsVoucherId) {
        List<GetExamineOutData> dataList;
        PageInfo pageInfo;
        HttpJson rsp;
        GetExamineInData inData = new GetExamineInData();
        inData.setPageNum(pageNum + 1);
        inData.setPageSize(this.pageSize);
        if (ObjectUtil.isNotEmpty(gsahPsVoucherId)) {
            inData.setGsehVoucherAcceptId(gsahPsVoucherId);
        } else {
            inData.setGsehVoucherAcceptId(this.voucherIdQuery.getText().trim());
        }
        if (ObjectUtil.isNotNull(this.statusQuery.getValue())) {
            inData.setGsehStatus(((GsdcStatus)this.statusQuery.getValue()).getCode());
        }
        if (ObjectUtil.isNotNull(this.acceptPeopleQuery.getValue())) {
            inData.setGsedEmp(((GsdcEmp)this.acceptPeopleQuery.getValue()).getCode());
        }
        if (ObjectUtil.isNotNull(this.productCodeQuery.getText().trim())) {
            inData.setGsedProId(this.productCodeQuery.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.bathCodeQuery.getText().trim())) {
            inData.setGsedBatchNo(this.bathCodeQuery.getText().trim());
        }
        if (ObjectUtil.isNotEmpty(this.amountQuery.getText().trim())) {
            inData.setGsehTotalAmt(new BigDecimal(this.amountQuery.getText().trim()));
        }
        if (ObjectUtil.isNotNull(this.updateDateQuery.getValue())) {
            inData.setGsehDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.updateDateQuery.getValue()).toString()), (String)"yyyyMMdd"));
        }
        if (ObjectUtil.isNotNull(this.acceptDateQuery.getValue())) {
            inData.setGsehDate(DateUtil.format((Date)DateUtil.parse((String)((LocalDate)this.acceptDateQuery.getValue()).toString()), (String)"yyyyMMdd"));
        }
        if ((rsp = ExamineUtil.selectList(inData)).isSuccess()) {
            pageInfo = (PageInfo)JSON.parseObject((String)rsp.getMsg(), PageInfo.class);
            if (pageInfo != null && CollUtil.isNotEmpty(pageInfo.getList())) {
                ArrayList<GetExamineOutData> listTemp = new ArrayList<GetExamineOutData>();
                for (int i = 0; i < pageInfo.getList().size(); ++i) {
                    String str = JSONObject.toJSONString(pageInfo.getList().get(i));
                    GetExamineOutData outData = (GetExamineOutData)JSONObject.parseObject((String)str, GetExamineOutData.class);
                    if ("1".equals(outData.getGsehStatus())) {
                        outData.setGsehStatus("\u5df2\u9a8c\u6536");
                    } else {
                        outData.setGsehStatus("\u672a\u9a8c\u6536");
                    }
                    outData.setIndex(i + 1);
                    listTemp.add(outData);
                }
                pageInfo.setList(listTemp);
            }
        } else {
            Alert alert = this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", rsp.getMsg());
            alert.showAndWait();
            return new TableView();
        }
        if (pageInfo != null && CollUtil.isNotEmpty(pageInfo.getList())) {
            this.pagination.setPageCount(pageInfo.getPages());
            dataList = pageInfo.getList();
        } else {
            this.pagination.setPageCount(this.defaultPageCount);
            dataList = new ArrayList();
        }
        this.observableTableList.clear();
        this.detailObservableTableList.clear();
        this.observableTableList = FXCollections.observableArrayList(dataList);
        this.bingTableCell();
        this.tableView.setItems(this.observableTableList);
        return this.tableView;
    }

    private void bingTableCell() {
        this.index.setCellValueFactory((Callback)new PropertyValueFactory(this.index.getId()));
        this.checkBox.setCellValueFactory(cellData -> ((GetExamineOutData)cellData.getValue()).getCheckBox().getCustomCheckBox());
        this.checkBox.setCellFactory(col -> {
            TableCell<GetExamineOutData, CheckBox> cell = new TableCell<GetExamineOutData, CheckBox>(){

                protected void updateItem(CheckBox item, boolean empty) {
                    super.updateItem(item, empty);
                    this.setGraphic((Node)item);
                    if (item != null) {
                        item.setOnMouseClicked(col -> {
                            if (CollUtil.isEmpty((Collection)ExamineController.this.observableTableList)) {
                                return;
                            }
                            int index = this.getIndex();
                            for (int i = 0; i < ExamineController.this.observableTableList.size(); ++i) {
                                if (i == index) continue;
                                ((GetExamineOutData)ExamineController.this.observableTableList.get(i)).getCheckBox().setSelectStatus(false);
                            }
                            if (((GetExamineOutData)ExamineController.this.observableTableList.get(index)).getCheckBox().isSelected().booleanValue()) {
                                GetExamineInData inData = new GetExamineInData();
                                inData.setClientId(((GetUserOutData)CacheUtil.get("logInUser")).getClient());
                                inData.setGsehVoucherId(((GetExamineOutData)ExamineController.this.observableTableList.get(index)).getGsehVoucherId());
                                inData.setStoreCode(((GetLoginStoreOutData)CacheUtil.get("store")).getStoCode());
                                List<GetExamineDetailOutData> dataList = new ArrayList();
                                HttpJson httpJson = ExamineUtil.queryDetail(inData);
                                if (httpJson.isSuccess()) {
                                    dataList = JSON.parseArray((String)httpJson.getMsg(), GetExamineDetailOutData.class);
                                    for (GetExamineDetailOutData detail : dataList) {
                                        if ("0".equals(detail.getGsedResult())) {
                                            detail.setGsedResult("\u5408\u683c");
                                        }
                                        if ("1".equals(detail.getGsedResult())) {
                                            detail.setGsedResult("\u4e0d\u5408\u683c");
                                        }
                                        if ("0".equals(detail.getGsedUnqualifiedCause())) {
                                            detail.setGsedUnqualifiedCause("\u65e0");
                                        }
                                        if ("1".equals(detail.getGsedUnqualifiedCause())) {
                                            detail.setGsedUnqualifiedCause("\u8d28\u91cf\u95ee\u9898");
                                        }
                                        if ("2".equals(detail.getGsedUnqualifiedCause())) {
                                            detail.setGsedUnqualifiedCause("\u6548\u671f\u5546\u54c1");
                                        }
                                        if ("3".equals(detail.getGsedUnqualifiedCause())) {
                                            detail.setGsedUnqualifiedCause("\u6279\u53f7\u4e0d\u7b26");
                                        }
                                        if ("4".equals(detail.getGsedUnqualifiedCause())) {
                                            detail.setGsedUnqualifiedCause("\u5176\u4ed6");
                                        }
                                        if ("1".equals(detail.getGsedStockStatus())) {
                                            detail.setGsedStockStatus("\u6b63\u5e38");
                                            continue;
                                        }
                                        detail.setGsedStockStatus("\u5f85\u9a8c");
                                    }
                                    if ("\u672a\u9a8c\u6536".equals(((GetExamineOutData)ExamineController.this.observableTableList.get(index)).getGsehStatus())) {
                                        ExamineController.this.tableView.setEditable(true);
                                        ExamineController.this.tableViewTwo.setEditable(true);
                                        ExamineController.this.approveBtn.setDisable(false);
                                        ExamineController.this.gsegChangeToComBoxEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedEmp, (ObservableList<String>)ExamineController.this.empOptions);
                                        ExamineController.this.changeToComBoxEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedResult, (ObservableList<KeyValue>)ExamineController.this.resultOptions);
                                        ExamineController.this.changeToReasonComBoxEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedUnqualifiedCause, (ObservableList<KeyValue>)ExamineController.this.reasonOptions);
                                        ExamineController.this.changeToTextFieldDEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedUnqualifiedQty);
                                    } else {
                                        ExamineController.this.tableView.setEditable(false);
                                        ExamineController.this.tableViewTwo.setEditable(false);
                                        ExamineController.this.approveBtn.setDisable(true);
                                        ExamineController.this.clearDetailEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedUnqualifiedQty);
                                        ExamineController.this.clearComBoxEdit((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedEmp, (ObservableList<String>)ExamineController.this.empOptions);
                                        ExamineController.this.clearComBox((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedResult, (ObservableList<KeyValue>)ExamineController.this.resultOptions);
                                        ExamineController.this.clearComBox((TableColumn<GetExamineDetailOutData, String>)ExamineController.this.gsedUnqualifiedCause, (ObservableList<KeyValue>)ExamineController.this.reasonOptions);
                                    }
                                    ExamineController.this.initDetailTableView(dataList);
                                } else {
                                    Alert alert = ExamineController.this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", httpJson.getMsg());
                                    alert.showAndWait();
                                }
                            } else {
                                ExamineController.this.detailObservableTableList.clear();
                            }
                        });
                    }
                }
            };
            return cell;
        });
        this.gsehVoucherId.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehVoucherId.getId()));
        this.gsehDate.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehDate.getId()));
        this.gsehFrom.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehFrom.getId()));
        this.gsehTo.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehTo.getId()));
        this.gsehType.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehType.getId()));
        this.gsehStatus.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehStatus.getId()));
        this.gsehTotalAmt.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehTotalAmt.getId()));
        this.gsehTotalQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehTotalQty.getId()));
        this.gsehRemaks.setCellValueFactory((Callback)new PropertyValueFactory(this.gsehRemaks.getId()));
    }

    private TableView<GetExamineDetailOutData> initDetailTableView(List<GetExamineDetailOutData> dataList) {
        this.detailObservableTableList.clear();
        this.detailObservableTableList = FXCollections.observableArrayList(dataList);
        this.gsedSerial.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedSerial.getId()));
        this.bingDetailTableCell();
        this.tableViewTwo.setItems(this.detailObservableTableList);
        return this.tableViewTwo;
    }

    private void bingDetailTableCell() {
        this.gsedProId.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedProId.getId()));
        this.proName.setCellValueFactory((Callback)new PropertyValueFactory(this.proName.getId()));
        this.proPrice.setCellValueFactory((Callback)new PropertyValueFactory(this.proPrice.getId()));
        this.gsedBatchNo.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedBatchNo.getId()));
        this.gsedValidDate.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedValidDate.getId()));
        this.gsedRecipientQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedRecipientQty.getId()));
        this.gsedQualifiedQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedQualifiedQty.getId()));
        this.gsedUnqualifiedQty.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedUnqualifiedQty.getId()));
        this.gsedUnqualifiedCause.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedUnqualifiedCause.getId()));
        this.gsedEmp.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedEmp.getId()));
        this.gsedResult.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedResult.getId()));
        this.proDate.setCellValueFactory((Callback)new PropertyValueFactory(this.proDate.getId()));
        this.proFactoryName.setCellValueFactory((Callback)new PropertyValueFactory(this.proFactoryName.getId()));
        this.proPlace.setCellValueFactory((Callback)new PropertyValueFactory(this.proPlace.getId()));
        this.proForm.setCellValueFactory((Callback)new PropertyValueFactory(this.proForm.getId()));
        this.proUnit.setCellValueFactory((Callback)new PropertyValueFactory(this.proUnit.getId()));
        this.proSpecs.setCellValueFactory((Callback)new PropertyValueFactory(this.proSpecs.getId()));
        this.proRegisterNo.setCellValueFactory((Callback)new PropertyValueFactory(this.proRegisterNo.getId()));
        this.gsedStockStatus.setCellValueFactory((Callback)new PropertyValueFactory(this.gsedStockStatus.getId()));
    }

    public void clearDetailEdit(TableColumn<GetExamineDetailOutData, String> column) {
        column.setCellFactory(tc -> {
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        Text text = new Text();
                        text.setText(chuzhi);
                        this.setGraphic((Node)text);
                    }
                }
            };
            return cell;
        });
    }

    public void clearComBoxEdit(TableColumn<GetExamineDetailOutData, String> column, ObservableList<String> options) {
        column.setCellFactory(tc -> {
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        Text text = new Text();
                        text.setText(chuzhi);
                        this.setGraphic((Node)text);
                    }
                }
            };
            return cell;
        });
    }

    public void clearComBox(TableColumn<GetExamineDetailOutData, String> column, ObservableList<KeyValue> options) {
        column.setCellFactory(tc -> {
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        Text text = new Text();
                        text.setText(chuzhi);
                        this.setGraphic((Node)text);
                    }
                }
            };
            return cell;
        });
    }

    private void editdTableCell(TableColumn<GetExamineDetailOutData, String> tableColumn) {
        tableColumn.setCellFactory(TextFieldTableCell.forTableColumn());
        tableColumn.setOnEditCommit(t -> {
            GetExamineDetailOutData line = (GetExamineDetailOutData)t.getTableView().getItems().get(t.getTablePosition().getRow());
            String methodName = CommonUtil.getSetMethod(tableColumn.getId());
            try {
                Method method = AcceptOutData.class.getMethod(methodName, String.class);
                method.invoke(line, t.getNewValue());
            }
            catch (Exception e) {
                throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
            }
        });
        tableColumn.setOnEditStart(t -> {});
    }

    public void gsegChangeToComBoxEdit(TableColumn<GetExamineDetailOutData, String> column, ObservableList<String> options) {
        column.setCellFactory(tc -> {
            final ComboBox combo = new ComboBox();
            combo.setItems(options);
            combo.setEditable(false);
            combo.setMinHeight(30.0);
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        combo.setValue(chuzhi);
                        this.setGraphic((Node)combo);
                    }
                }
            };
            combo.setOnAction(arg_0 -> {
                int rank = cell.getIndex();
                String cloumName = cell.getId();
                String value = (String)combo.getValue();
                GetExamineDetailOutData outData = (GetExamineDetailOutData)this.detailObservableTableList.get(rank);
                String methodName = CommonUtil.getSetMethod(cloumName);
                try {
                    Method method = GetExamineDetailOutData.class.getMethod(methodName, String.class);
                    method.invoke(outData, this.empsMap.get(value).getUserId());
                }
                catch (Exception ex) {
                    throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                }
            });
            return cell;
        });
    }

    public void changeToTextFieldDEdit(TableColumn<GetExamineDetailOutData, String> column) {
        column.setCellFactory(tc -> {
            final TextField textField = new TextField();
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        textField.setText(chuzhi);
                        this.setGraphic((Node)textField);
                    }
                }
            };
            textField.textProperty().addListener(new ChangeListener(){
                final TableCell val_cell;
                final TextField val_textField;
                {
                    this.val_cell = cell;
                    this.val_textField = textField;
                }

                public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                    int rank = this.val_cell.getIndex();
                    String cloumName = this.val_cell.getId();
                    String value = this.val_textField.getText();
                    GetExamineDetailOutData outData = (GetExamineDetailOutData)ExamineController.this.detailObservableTableList.get(rank);
                    if (ObjectUtil.isNotEmpty(value)) {
                        if (new BigDecimal(value).compareTo(new BigDecimal(outData.getGsedRecipientQty())) > 0) {
                            Alert alert = ExamineController.this.createAlert(Alert.AlertType.INFORMATION, "\u63d0\u793a\u4fe1\u606f", "\u4e0d\u5408\u683c\u6570\u91cf\u4e0d\u80fd\u5927\u4e8e\u6536\u8d27\u6570\u91cf");
                            alert.showAndWait();
                            this.val_textField.setText("0");
                        }
                        outData.setGsedQualifiedQty(new BigDecimal(outData.getGsedRecipientQty()).subtract(new BigDecimal(value)).toString());
                    }
                    String methodName = CommonUtil.getSetMethod(cloumName);
                    try {
                        Method method = GetExamineDetailOutData.class.getMethod(methodName, String.class);
                        method.invoke(outData, value);
                    }
                    catch (Exception ex) {
                        throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                    }
                }
            });
            return cell;
        });
    }

    public void changeToComBoxEdit(TableColumn<GetExamineDetailOutData, String> column, ObservableList<KeyValue> options) {
        column.setCellFactory(tc -> {
            final ComboBox combo = new ComboBox();
            combo.setItems(options);
            combo.setEditable(false);
            combo.setMinHeight(30.0);
            this.comboxInit(combo);
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        for (int i = 0; i < ExamineController.this.resultOptions.size(); ++i) {
                            if (((KeyValue)ExamineController.this.resultOptions.get(i)).getName().equals(chuzhi)) {
                                combo.setValue(ExamineController.this.resultOptions.get(i));
                                continue;
                            }
                            combo.setValue(ExamineController.this.resultOptions.get(0));
                        }
                        this.setGraphic((Node)combo);
                    }
                }
            };
            combo.setOnAction(arg_0 -> {
                int rank = cell.getIndex();
                String cloumName = cell.getId();
                String value = ((KeyValue)combo.getValue()).getValue();
                String name = ((KeyValue)combo.getValue()).getName();
                GetExamineDetailOutData outData = (GetExamineDetailOutData)this.detailObservableTableList.get(rank);
                String methodName = CommonUtil.getSetMethod(cloumName);
                try {
                    Method method = GetExamineDetailOutData.class.getMethod(methodName, String.class);
                    method.invoke(outData, value);
                }
                catch (Exception ex) {
                    throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                }
            });
            return cell;
        });
    }

    public void changeToReasonComBoxEdit(TableColumn<GetExamineDetailOutData, String> column, ObservableList<KeyValue> options) {
        column.setCellFactory(tc -> {
            final ComboBox combo = new ComboBox();
            combo.setItems(options);
            combo.setEditable(false);
            combo.setMinHeight(30.0);
            this.comboxInit(combo);
            TableCell<GetExamineDetailOutData, String> cell = new TableCell<GetExamineDetailOutData, String>(){

                protected void updateItem(String chuzhi, boolean empty) {
                    super.updateItem(chuzhi, empty);
                    if (empty) {
                        this.setGraphic(null);
                    } else {
                        for (int i = 0; i < ExamineController.this.reasonOptions.size(); ++i) {
                            if (((KeyValue)ExamineController.this.reasonOptions.get(i)).getName().equals(chuzhi)) {
                                combo.setValue(ExamineController.this.reasonOptions.get(i));
                                continue;
                            }
                            combo.setValue(ExamineController.this.reasonOptions.get(0));
                        }
                        this.setGraphic((Node)combo);
                    }
                }
            };
            combo.setOnAction(arg_0 -> {
                int rank = cell.getIndex();
                String cloumName = cell.getId();
                String value = ((KeyValue)combo.getValue()).getValue();
                String name = ((KeyValue)combo.getValue()).getName();
                GetExamineDetailOutData outData = (GetExamineDetailOutData)this.detailObservableTableList.get(rank);
                String methodName = CommonUtil.getSetMethod(cloumName);
                try {
                    Method method = GetExamineDetailOutData.class.getMethod(methodName, String.class);
                    method.invoke(outData, value);
                }
                catch (Exception ex) {
                    throw new RuntimeException("\u6ca1\u6709\u65b9\u6cd5" + methodName);
                }
            });
            return cell;
        });
    }

    public void comboxInit(ComboBox box) {
        box.converterProperty().set(new StringConverter<KeyValue>(){

            public String toString(KeyValue object) {
                return object.getName();
            }

            public KeyValue fromString(String string) {
                return null;
            }
        });
    }

    private List<GsdcStatus> getAllStatus() {
        ArrayList<GsdcStatus> list = new ArrayList<GsdcStatus>();
        list.add(new GsdcStatus("1", "\u5df2\u9a8c\u6536"));
        list.add(new GsdcStatus("0", "\u672a\u9a8c\u6536"));
        return list;
    }

    private List<GsdcStatus> getReason() {
        ArrayList<GsdcStatus> list = new ArrayList<GsdcStatus>();
        list.add(new GsdcStatus("0", "\u65e0"));
        list.add(new GsdcStatus("1", "\u8d28\u91cf\u95ee\u9898"));
        list.add(new GsdcStatus("2", "\u6548\u671f\u5546\u54c1"));
        list.add(new GsdcStatus("3", "\u6279\u53f7\u4e0d\u7b26"));
        list.add(new GsdcStatus("4", "\u5176\u4ed6"));
        return list;
    }

    private List<GsdcStatus> getResult() {
        ArrayList<GsdcStatus> list = new ArrayList<GsdcStatus>();
        list.add(new GsdcStatus("0", "\u5408\u683c"));
        list.add(new GsdcStatus("1", "\u4e0d\u5408\u683c"));
        return list;
    }

    private List<Integer> getSelectIndex() {
        ArrayList<Integer> ids = new ArrayList<Integer>();
        if (!CollectionUtils.isEmpty(this.observableTableList)) {
            for (GetExamineOutData i : this.observableTableList) {
                if (!i.getCheckBox().isSelected().booleanValue()) continue;
                ids.add(i.getIndex());
            }
        }
        return ids;
    }

    public int getPageSize() {
        return this.pageSize;
    }

    public int getDefaultPageCount() {
        return this.defaultPageCount;
    }

    public ObservableList<GetExamineOutData> getObservableTableList() {
        return this.observableTableList;
    }

    public ObservableList<GetExamineDetailOutData> getDetailObservableTableList() {
        return this.detailObservableTableList;
    }

    public ScrollPane getScrollPane() {
        return this.scrollPane;
    }

    public VBox getVBox() {
        return this.vBox;
    }

    public Button getEnterBtn() {
        return this.enterBtn;
    }

    public Button getApproveBtn() {
        return this.approveBtn;
    }

    public HBox getQueryHbox() {
        return this.queryHbox;
    }

    public HBox getQueryHbox1() {
        return this.queryHbox1;
    }

    public HBox getBoxView() {
        return this.boxView;
    }

    public TextField getVoucherIdQuery() {
        return this.voucherIdQuery;
    }

    public TextField getAmountQuery() {
        return this.amountQuery;
    }

    public TextField getBathCodeQuery() {
        return this.bathCodeQuery;
    }

    public TextField getProductCodeQuery() {
        return this.productCodeQuery;
    }

    public ChoiceBox<GsdcEmp> getAcceptPeopleQuery() {
        return this.acceptPeopleQuery;
    }

    public ChoiceBox<GsdcStatus> getStatusQuery() {
        return this.statusQuery;
    }

    public DatePicker getUpdateDateQuery() {
        return this.updateDateQuery;
    }

    public DatePicker getAcceptDateQuery() {
        return this.acceptDateQuery;
    }

    public TableView<GetExamineOutData> getTableView() {
        return this.tableView;
    }

    public TableView<GetExamineDetailOutData> getTableViewTwo() {
        return this.tableViewTwo;
    }

    public TableColumn<GetExamineOutData, CheckBox> getCheckBox() {
        return this.checkBox;
    }

    public TableColumn<GetExamineOutData, String> getIndex() {
        return this.index;
    }

    public TableColumn<GetExamineOutData, String> getGsehVoucherId() {
        return this.gsehVoucherId;
    }

    public TableColumn<GetExamineOutData, String> getGsehDate() {
        return this.gsehDate;
    }

    public TableColumn<GetExamineOutData, String> getGsehFrom() {
        return this.gsehFrom;
    }

    public TableColumn<GetExamineOutData, String> getGsehTo() {
        return this.gsehTo;
    }

    public TableColumn<GetExamineOutData, String> getGsehType() {
        return this.gsehType;
    }

    public TableColumn<GetExamineOutData, String> getGsehStatus() {
        return this.gsehStatus;
    }

    public TableColumn<GetExamineOutData, String> getGsehTotalAmt() {
        return this.gsehTotalAmt;
    }

    public TableColumn<GetExamineOutData, String> getGsehTotalQty() {
        return this.gsehTotalQty;
    }

    public TableColumn<GetExamineOutData, String> getGsehRemaks() {
        return this.gsehRemaks;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedSerial() {
        return this.gsedSerial;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedProId() {
        return this.gsedProId;
    }

    public TableColumn<GetExamineDetailOutData, String> getProName() {
        return this.proName;
    }

    public TableColumn<GetExamineDetailOutData, String> getProPrice() {
        return this.proPrice;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedBatchNo() {
        return this.gsedBatchNo;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedValidDate() {
        return this.gsedValidDate;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedRecipientQty() {
        return this.gsedRecipientQty;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedQualifiedQty() {
        return this.gsedQualifiedQty;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedUnqualifiedQty() {
        return this.gsedUnqualifiedQty;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedUnqualifiedCause() {
        return this.gsedUnqualifiedCause;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedEmp() {
        return this.gsedEmp;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedResult() {
        return this.gsedResult;
    }

    public TableColumn<GetExamineDetailOutData, String> getProDate() {
        return this.proDate;
    }

    public TableColumn<GetExamineDetailOutData, String> getProPlace() {
        return this.proPlace;
    }

    public TableColumn<GetExamineDetailOutData, String> getProForm() {
        return this.proForm;
    }

    public TableColumn<GetExamineDetailOutData, String> getProUnit() {
        return this.proUnit;
    }

    public TableColumn<GetExamineDetailOutData, String> getProSpecs() {
        return this.proSpecs;
    }

    public TableColumn<GetExamineDetailOutData, String> getProRegisterNo() {
        return this.proRegisterNo;
    }

    public TableColumn<GetExamineDetailOutData, String> getProFactoryName() {
        return this.proFactoryName;
    }

    public TableColumn<GetExamineDetailOutData, String> getGsedStockStatus() {
        return this.gsedStockStatus;
    }

    public Pagination getPagination() {
        return this.pagination;
    }

    public Insets getTableViewInsets() {
        return this.tableViewInsets;
    }

    public IndexController getIndexController() {
        return this.indexController;
    }

    public List<GetUserOutData> getOutDataList() {
        return this.outDataList;
    }

    public ObservableList<String> getEmpOptions() {
        return this.empOptions;
    }

    public List<String> getEmps() {
        return this.emps;
    }

    public Map<String, GetUserOutData> getEmpsMap() {
        return this.empsMap;
    }

    public ObservableList<KeyValue> getReasonOptions() {
        return this.reasonOptions;
    }

    public ObservableList<KeyValue> getResultOptions() {
        return this.resultOptions;
    }

    public void setObservableTableList(ObservableList<GetExamineOutData> observableTableList) {
        this.observableTableList = observableTableList;
    }

    public void setDetailObservableTableList(ObservableList<GetExamineDetailOutData> detailObservableTableList) {
        this.detailObservableTableList = detailObservableTableList;
    }

    public void setScrollPane(ScrollPane scrollPane) {
        this.scrollPane = scrollPane;
    }

    public void setVBox(VBox vBox) {
        this.vBox = vBox;
    }

    public void setEnterBtn(Button enterBtn) {
        this.enterBtn = enterBtn;
    }

    public void setApproveBtn(Button approveBtn) {
        this.approveBtn = approveBtn;
    }

    public void setQueryHbox(HBox queryHbox) {
        this.queryHbox = queryHbox;
    }

    public void setQueryHbox1(HBox queryHbox1) {
        this.queryHbox1 = queryHbox1;
    }

    public void setBoxView(HBox boxView) {
        this.boxView = boxView;
    }

    public void setVoucherIdQuery(TextField voucherIdQuery) {
        this.voucherIdQuery = voucherIdQuery;
    }

    public void setAmountQuery(TextField amountQuery) {
        this.amountQuery = amountQuery;
    }

    public void setBathCodeQuery(TextField bathCodeQuery) {
        this.bathCodeQuery = bathCodeQuery;
    }

    public void setProductCodeQuery(TextField productCodeQuery) {
        this.productCodeQuery = productCodeQuery;
    }

    public void setAcceptPeopleQuery(ChoiceBox<GsdcEmp> acceptPeopleQuery) {
        this.acceptPeopleQuery = acceptPeopleQuery;
    }

    public void setStatusQuery(ChoiceBox<GsdcStatus> statusQuery) {
        this.statusQuery = statusQuery;
    }

    public void setUpdateDateQuery(DatePicker updateDateQuery) {
        this.updateDateQuery = updateDateQuery;
    }

    public void setAcceptDateQuery(DatePicker acceptDateQuery) {
        this.acceptDateQuery = acceptDateQuery;
    }

    public void setTableView(TableView<GetExamineOutData> tableView) {
        this.tableView = tableView;
    }

    public void setTableViewTwo(TableView<GetExamineDetailOutData> tableViewTwo) {
        this.tableViewTwo = tableViewTwo;
    }

    public void setCheckBox(TableColumn<GetExamineOutData, CheckBox> checkBox) {
        this.checkBox = checkBox;
    }

    public void setIndex(TableColumn<GetExamineOutData, String> index) {
        this.index = index;
    }

    public void setGsehVoucherId(TableColumn<GetExamineOutData, String> gsehVoucherId) {
        this.gsehVoucherId = gsehVoucherId;
    }

    public void setGsehDate(TableColumn<GetExamineOutData, String> gsehDate) {
        this.gsehDate = gsehDate;
    }

    public void setGsehFrom(TableColumn<GetExamineOutData, String> gsehFrom) {
        this.gsehFrom = gsehFrom;
    }

    public void setGsehTo(TableColumn<GetExamineOutData, String> gsehTo) {
        this.gsehTo = gsehTo;
    }

    public void setGsehType(TableColumn<GetExamineOutData, String> gsehType) {
        this.gsehType = gsehType;
    }

    public void setGsehStatus(TableColumn<GetExamineOutData, String> gsehStatus) {
        this.gsehStatus = gsehStatus;
    }

    public void setGsehTotalAmt(TableColumn<GetExamineOutData, String> gsehTotalAmt) {
        this.gsehTotalAmt = gsehTotalAmt;
    }

    public void setGsehTotalQty(TableColumn<GetExamineOutData, String> gsehTotalQty) {
        this.gsehTotalQty = gsehTotalQty;
    }

    public void setGsehRemaks(TableColumn<GetExamineOutData, String> gsehRemaks) {
        this.gsehRemaks = gsehRemaks;
    }

    public void setGsedSerial(TableColumn<GetExamineDetailOutData, String> gsedSerial) {
        this.gsedSerial = gsedSerial;
    }

    public void setGsedProId(TableColumn<GetExamineDetailOutData, String> gsedProId) {
        this.gsedProId = gsedProId;
    }

    public void setProName(TableColumn<GetExamineDetailOutData, String> proName) {
        this.proName = proName;
    }

    public void setProPrice(TableColumn<GetExamineDetailOutData, String> proPrice) {
        this.proPrice = proPrice;
    }

    public void setGsedBatchNo(TableColumn<GetExamineDetailOutData, String> gsedBatchNo) {
        this.gsedBatchNo = gsedBatchNo;
    }

    public void setGsedValidDate(TableColumn<GetExamineDetailOutData, String> gsedValidDate) {
        this.gsedValidDate = gsedValidDate;
    }

    public void setGsedRecipientQty(TableColumn<GetExamineDetailOutData, String> gsedRecipientQty) {
        this.gsedRecipientQty = gsedRecipientQty;
    }

    public void setGsedQualifiedQty(TableColumn<GetExamineDetailOutData, String> gsedQualifiedQty) {
        this.gsedQualifiedQty = gsedQualifiedQty;
    }

    public void setGsedUnqualifiedQty(TableColumn<GetExamineDetailOutData, String> gsedUnqualifiedQty) {
        this.gsedUnqualifiedQty = gsedUnqualifiedQty;
    }

    public void setGsedUnqualifiedCause(TableColumn<GetExamineDetailOutData, String> gsedUnqualifiedCause) {
        this.gsedUnqualifiedCause = gsedUnqualifiedCause;
    }

    public void setGsedEmp(TableColumn<GetExamineDetailOutData, String> gsedEmp) {
        this.gsedEmp = gsedEmp;
    }

    public void setGsedResult(TableColumn<GetExamineDetailOutData, String> gsedResult) {
        this.gsedResult = gsedResult;
    }

    public void setProDate(TableColumn<GetExamineDetailOutData, String> proDate) {
        this.proDate = proDate;
    }

    public void setProPlace(TableColumn<GetExamineDetailOutData, String> proPlace) {
        this.proPlace = proPlace;
    }

    public void setProForm(TableColumn<GetExamineDetailOutData, String> proForm) {
        this.proForm = proForm;
    }

    public void setProUnit(TableColumn<GetExamineDetailOutData, String> proUnit) {
        this.proUnit = proUnit;
    }

    public void setProSpecs(TableColumn<GetExamineDetailOutData, String> proSpecs) {
        this.proSpecs = proSpecs;
    }

    public void setProRegisterNo(TableColumn<GetExamineDetailOutData, String> proRegisterNo) {
        this.proRegisterNo = proRegisterNo;
    }

    public void setProFactoryName(TableColumn<GetExamineDetailOutData, String> proFactoryName) {
        this.proFactoryName = proFactoryName;
    }

    public void setGsedStockStatus(TableColumn<GetExamineDetailOutData, String> gsedStockStatus) {
        this.gsedStockStatus = gsedStockStatus;
    }

    public void setPagination(Pagination pagination) {
        this.pagination = pagination;
    }

    public void setTableViewInsets(Insets tableViewInsets) {
        this.tableViewInsets = tableViewInsets;
    }

    public void setIndexController(IndexController indexController) {
        this.indexController = indexController;
    }

    public void setOutDataList(List<GetUserOutData> outDataList) {
        this.outDataList = outDataList;
    }

    public void setEmpOptions(ObservableList<String> empOptions) {
        this.empOptions = empOptions;
    }

    public void setEmps(List<String> emps) {
        this.emps = emps;
    }

    public void setEmpsMap(Map<String, GetUserOutData> empsMap) {
        this.empsMap = empsMap;
    }

    public void setReasonOptions(ObservableList<KeyValue> reasonOptions) {
        this.reasonOptions = reasonOptions;
    }

    public void setResultOptions(ObservableList<KeyValue> resultOptions) {
        this.resultOptions = resultOptions;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        }
        if (!(o instanceof ExamineController)) {
            return false;
        }
        ExamineController other = (ExamineController)o;
        if (!other.canEqual(this)) {
            return false;
        }
        if (this.getPageSize() != other.getPageSize()) {
            return false;
        }
        if (this.getDefaultPageCount() != other.getDefaultPageCount()) {
            return false;
        }
        ObservableList<GetExamineOutData> this$observableTableList = this.getObservableTableList();
        ObservableList<GetExamineOutData> other$observableTableList = other.getObservableTableList();
        if (this$observableTableList == null ? other$observableTableList != null : !this$observableTableList.equals(other$observableTableList)) {
            return false;
        }
        ObservableList<GetExamineDetailOutData> this$detailObservableTableList = this.getDetailObservableTableList();
        ObservableList<GetExamineDetailOutData> other$detailObservableTableList = other.getDetailObservableTableList();
        if (this$detailObservableTableList == null ? other$detailObservableTableList != null : !this$detailObservableTableList.equals(other$detailObservableTableList)) {
            return false;
        }
        ScrollPane this$scrollPane = this.getScrollPane();
        ScrollPane other$scrollPane = other.getScrollPane();
        if (this$scrollPane == null ? other$scrollPane != null : !this$scrollPane.equals(other$scrollPane)) {
            return false;
        }
        VBox this$vBox = this.getVBox();
        VBox other$vBox = other.getVBox();
        if (this$vBox == null ? other$vBox != null : !this$vBox.equals(other$vBox)) {
            return false;
        }
        Button this$enterBtn = this.getEnterBtn();
        Button other$enterBtn = other.getEnterBtn();
        if (this$enterBtn == null ? other$enterBtn != null : !this$enterBtn.equals(other$enterBtn)) {
            return false;
        }
        Button this$approveBtn = this.getApproveBtn();
        Button other$approveBtn = other.getApproveBtn();
        if (this$approveBtn == null ? other$approveBtn != null : !this$approveBtn.equals(other$approveBtn)) {
            return false;
        }
        HBox this$queryHbox = this.getQueryHbox();
        HBox other$queryHbox = other.getQueryHbox();
        if (this$queryHbox == null ? other$queryHbox != null : !this$queryHbox.equals(other$queryHbox)) {
            return false;
        }
        HBox this$queryHbox1 = this.getQueryHbox1();
        HBox other$queryHbox1 = other.getQueryHbox1();
        if (this$queryHbox1 == null ? other$queryHbox1 != null : !this$queryHbox1.equals(other$queryHbox1)) {
            return false;
        }
        HBox this$boxView = this.getBoxView();
        HBox other$boxView = other.getBoxView();
        if (this$boxView == null ? other$boxView != null : !this$boxView.equals(other$boxView)) {
            return false;
        }
        TextField this$voucherIdQuery = this.getVoucherIdQuery();
        TextField other$voucherIdQuery = other.getVoucherIdQuery();
        if (this$voucherIdQuery == null ? other$voucherIdQuery != null : !this$voucherIdQuery.equals(other$voucherIdQuery)) {
            return false;
        }
        TextField this$amountQuery = this.getAmountQuery();
        TextField other$amountQuery = other.getAmountQuery();
        if (this$amountQuery == null ? other$amountQuery != null : !this$amountQuery.equals(other$amountQuery)) {
            return false;
        }
        TextField this$bathCodeQuery = this.getBathCodeQuery();
        TextField other$bathCodeQuery = other.getBathCodeQuery();
        if (this$bathCodeQuery == null ? other$bathCodeQuery != null : !this$bathCodeQuery.equals(other$bathCodeQuery)) {
            return false;
        }
        TextField this$productCodeQuery = this.getProductCodeQuery();
        TextField other$productCodeQuery = other.getProductCodeQuery();
        if (this$productCodeQuery == null ? other$productCodeQuery != null : !this$productCodeQuery.equals(other$productCodeQuery)) {
            return false;
        }
        ChoiceBox<GsdcEmp> this$acceptPeopleQuery = this.getAcceptPeopleQuery();
        ChoiceBox<GsdcEmp> other$acceptPeopleQuery = other.getAcceptPeopleQuery();
        if (this$acceptPeopleQuery == null ? other$acceptPeopleQuery != null : !this$acceptPeopleQuery.equals(other$acceptPeopleQuery)) {
            return false;
        }
        ChoiceBox<GsdcStatus> this$statusQuery = this.getStatusQuery();
        ChoiceBox<GsdcStatus> other$statusQuery = other.getStatusQuery();
        if (this$statusQuery == null ? other$statusQuery != null : !this$statusQuery.equals(other$statusQuery)) {
            return false;
        }
        DatePicker this$updateDateQuery = this.getUpdateDateQuery();
        DatePicker other$updateDateQuery = other.getUpdateDateQuery();
        if (this$updateDateQuery == null ? other$updateDateQuery != null : !this$updateDateQuery.equals(other$updateDateQuery)) {
            return false;
        }
        DatePicker this$acceptDateQuery = this.getAcceptDateQuery();
        DatePicker other$acceptDateQuery = other.getAcceptDateQuery();
        if (this$acceptDateQuery == null ? other$acceptDateQuery != null : !this$acceptDateQuery.equals(other$acceptDateQuery)) {
            return false;
        }
        TableView<GetExamineOutData> this$tableView = this.getTableView();
        TableView<GetExamineOutData> other$tableView = other.getTableView();
        if (this$tableView == null ? other$tableView != null : !this$tableView.equals(other$tableView)) {
            return false;
        }
        TableView<GetExamineDetailOutData> this$tableViewTwo = this.getTableViewTwo();
        TableView<GetExamineDetailOutData> other$tableViewTwo = other.getTableViewTwo();
        if (this$tableViewTwo == null ? other$tableViewTwo != null : !this$tableViewTwo.equals(other$tableViewTwo)) {
            return false;
        }
        TableColumn<GetExamineOutData, CheckBox> this$checkBox = this.getCheckBox();
        TableColumn<GetExamineOutData, CheckBox> other$checkBox = other.getCheckBox();
        if (this$checkBox == null ? other$checkBox != null : !this$checkBox.equals(other$checkBox)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$index = this.getIndex();
        TableColumn<GetExamineOutData, String> other$index = other.getIndex();
        if (this$index == null ? other$index != null : !this$index.equals(other$index)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehVoucherId = this.getGsehVoucherId();
        TableColumn<GetExamineOutData, String> other$gsehVoucherId = other.getGsehVoucherId();
        if (this$gsehVoucherId == null ? other$gsehVoucherId != null : !this$gsehVoucherId.equals(other$gsehVoucherId)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehDate = this.getGsehDate();
        TableColumn<GetExamineOutData, String> other$gsehDate = other.getGsehDate();
        if (this$gsehDate == null ? other$gsehDate != null : !this$gsehDate.equals(other$gsehDate)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehFrom = this.getGsehFrom();
        TableColumn<GetExamineOutData, String> other$gsehFrom = other.getGsehFrom();
        if (this$gsehFrom == null ? other$gsehFrom != null : !this$gsehFrom.equals(other$gsehFrom)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehTo = this.getGsehTo();
        TableColumn<GetExamineOutData, String> other$gsehTo = other.getGsehTo();
        if (this$gsehTo == null ? other$gsehTo != null : !this$gsehTo.equals(other$gsehTo)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehType = this.getGsehType();
        TableColumn<GetExamineOutData, String> other$gsehType = other.getGsehType();
        if (this$gsehType == null ? other$gsehType != null : !this$gsehType.equals(other$gsehType)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehStatus = this.getGsehStatus();
        TableColumn<GetExamineOutData, String> other$gsehStatus = other.getGsehStatus();
        if (this$gsehStatus == null ? other$gsehStatus != null : !this$gsehStatus.equals(other$gsehStatus)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehTotalAmt = this.getGsehTotalAmt();
        TableColumn<GetExamineOutData, String> other$gsehTotalAmt = other.getGsehTotalAmt();
        if (this$gsehTotalAmt == null ? other$gsehTotalAmt != null : !this$gsehTotalAmt.equals(other$gsehTotalAmt)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehTotalQty = this.getGsehTotalQty();
        TableColumn<GetExamineOutData, String> other$gsehTotalQty = other.getGsehTotalQty();
        if (this$gsehTotalQty == null ? other$gsehTotalQty != null : !this$gsehTotalQty.equals(other$gsehTotalQty)) {
            return false;
        }
        TableColumn<GetExamineOutData, String> this$gsehRemaks = this.getGsehRemaks();
        TableColumn<GetExamineOutData, String> other$gsehRemaks = other.getGsehRemaks();
        if (this$gsehRemaks == null ? other$gsehRemaks != null : !this$gsehRemaks.equals(other$gsehRemaks)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedSerial = this.getGsedSerial();
        TableColumn<GetExamineDetailOutData, String> other$gsedSerial = other.getGsedSerial();
        if (this$gsedSerial == null ? other$gsedSerial != null : !this$gsedSerial.equals(other$gsedSerial)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedProId = this.getGsedProId();
        TableColumn<GetExamineDetailOutData, String> other$gsedProId = other.getGsedProId();
        if (this$gsedProId == null ? other$gsedProId != null : !this$gsedProId.equals(other$gsedProId)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proName = this.getProName();
        TableColumn<GetExamineDetailOutData, String> other$proName = other.getProName();
        if (this$proName == null ? other$proName != null : !this$proName.equals(other$proName)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proPrice = this.getProPrice();
        TableColumn<GetExamineDetailOutData, String> other$proPrice = other.getProPrice();
        if (this$proPrice == null ? other$proPrice != null : !this$proPrice.equals(other$proPrice)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedBatchNo = this.getGsedBatchNo();
        TableColumn<GetExamineDetailOutData, String> other$gsedBatchNo = other.getGsedBatchNo();
        if (this$gsedBatchNo == null ? other$gsedBatchNo != null : !this$gsedBatchNo.equals(other$gsedBatchNo)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedValidDate = this.getGsedValidDate();
        TableColumn<GetExamineDetailOutData, String> other$gsedValidDate = other.getGsedValidDate();
        if (this$gsedValidDate == null ? other$gsedValidDate != null : !this$gsedValidDate.equals(other$gsedValidDate)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedRecipientQty = this.getGsedRecipientQty();
        TableColumn<GetExamineDetailOutData, String> other$gsedRecipientQty = other.getGsedRecipientQty();
        if (this$gsedRecipientQty == null ? other$gsedRecipientQty != null : !this$gsedRecipientQty.equals(other$gsedRecipientQty)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedQualifiedQty = this.getGsedQualifiedQty();
        TableColumn<GetExamineDetailOutData, String> other$gsedQualifiedQty = other.getGsedQualifiedQty();
        if (this$gsedQualifiedQty == null ? other$gsedQualifiedQty != null : !this$gsedQualifiedQty.equals(other$gsedQualifiedQty)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedUnqualifiedQty = this.getGsedUnqualifiedQty();
        TableColumn<GetExamineDetailOutData, String> other$gsedUnqualifiedQty = other.getGsedUnqualifiedQty();
        if (this$gsedUnqualifiedQty == null ? other$gsedUnqualifiedQty != null : !this$gsedUnqualifiedQty.equals(other$gsedUnqualifiedQty)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedUnqualifiedCause = this.getGsedUnqualifiedCause();
        TableColumn<GetExamineDetailOutData, String> other$gsedUnqualifiedCause = other.getGsedUnqualifiedCause();
        if (this$gsedUnqualifiedCause == null ? other$gsedUnqualifiedCause != null : !this$gsedUnqualifiedCause.equals(other$gsedUnqualifiedCause)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedEmp = this.getGsedEmp();
        TableColumn<GetExamineDetailOutData, String> other$gsedEmp = other.getGsedEmp();
        if (this$gsedEmp == null ? other$gsedEmp != null : !this$gsedEmp.equals(other$gsedEmp)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedResult = this.getGsedResult();
        TableColumn<GetExamineDetailOutData, String> other$gsedResult = other.getGsedResult();
        if (this$gsedResult == null ? other$gsedResult != null : !this$gsedResult.equals(other$gsedResult)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proDate = this.getProDate();
        TableColumn<GetExamineDetailOutData, String> other$proDate = other.getProDate();
        if (this$proDate == null ? other$proDate != null : !this$proDate.equals(other$proDate)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proPlace = this.getProPlace();
        TableColumn<GetExamineDetailOutData, String> other$proPlace = other.getProPlace();
        if (this$proPlace == null ? other$proPlace != null : !this$proPlace.equals(other$proPlace)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proForm = this.getProForm();
        TableColumn<GetExamineDetailOutData, String> other$proForm = other.getProForm();
        if (this$proForm == null ? other$proForm != null : !this$proForm.equals(other$proForm)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proUnit = this.getProUnit();
        TableColumn<GetExamineDetailOutData, String> other$proUnit = other.getProUnit();
        if (this$proUnit == null ? other$proUnit != null : !this$proUnit.equals(other$proUnit)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proSpecs = this.getProSpecs();
        TableColumn<GetExamineDetailOutData, String> other$proSpecs = other.getProSpecs();
        if (this$proSpecs == null ? other$proSpecs != null : !this$proSpecs.equals(other$proSpecs)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proRegisterNo = this.getProRegisterNo();
        TableColumn<GetExamineDetailOutData, String> other$proRegisterNo = other.getProRegisterNo();
        if (this$proRegisterNo == null ? other$proRegisterNo != null : !this$proRegisterNo.equals(other$proRegisterNo)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$proFactoryName = this.getProFactoryName();
        TableColumn<GetExamineDetailOutData, String> other$proFactoryName = other.getProFactoryName();
        if (this$proFactoryName == null ? other$proFactoryName != null : !this$proFactoryName.equals(other$proFactoryName)) {
            return false;
        }
        TableColumn<GetExamineDetailOutData, String> this$gsedStockStatus = this.getGsedStockStatus();
        TableColumn<GetExamineDetailOutData, String> other$gsedStockStatus = other.getGsedStockStatus();
        if (this$gsedStockStatus == null ? other$gsedStockStatus != null : !this$gsedStockStatus.equals(other$gsedStockStatus)) {
            return false;
        }
        Pagination this$pagination = this.getPagination();
        Pagination other$pagination = other.getPagination();
        if (this$pagination == null ? other$pagination != null : !this$pagination.equals(other$pagination)) {
            return false;
        }
        Insets this$tableViewInsets = this.getTableViewInsets();
        Insets other$tableViewInsets = other.getTableViewInsets();
        if (this$tableViewInsets == null ? other$tableViewInsets != null : !this$tableViewInsets.equals(other$tableViewInsets)) {
            return false;
        }
        IndexController this$indexController = this.getIndexController();
        IndexController other$indexController = other.getIndexController();
        if (this$indexController == null ? other$indexController != null : !(this$indexController).equals(other$indexController)) {
            return false;
        }
        List<GetUserOutData> this$outDataList = this.getOutDataList();
        List<GetUserOutData> other$outDataList = other.getOutDataList();
        if (this$outDataList == null ? other$outDataList != null : !(this$outDataList).equals(other$outDataList)) {
            return false;
        }
        ObservableList<String> this$empOptions = this.getEmpOptions();
        ObservableList<String> other$empOptions = other.getEmpOptions();
        if (this$empOptions == null ? other$empOptions != null : !this$empOptions.equals(other$empOptions)) {
            return false;
        }
        List<String> this$emps = this.getEmps();
        List<String> other$emps = other.getEmps();
        if (this$emps == null ? other$emps != null : !(this$emps).equals(other$emps)) {
            return false;
        }
        Map<String, GetUserOutData> this$empsMap = this.getEmpsMap();
        Map<String, GetUserOutData> other$empsMap = other.getEmpsMap();
        if (this$empsMap == null ? other$empsMap != null : !(this$empsMap).equals(other$empsMap)) {
            return false;
        }
        ObservableList<KeyValue> this$reasonOptions = this.getReasonOptions();
        ObservableList<KeyValue> other$reasonOptions = other.getReasonOptions();
        if (this$reasonOptions == null ? other$reasonOptions != null : !this$reasonOptions.equals(other$reasonOptions)) {
            return false;
        }
        ObservableList<KeyValue> this$resultOptions = this.getResultOptions();
        ObservableList<KeyValue> other$resultOptions = other.getResultOptions();
        return !(this$resultOptions == null ? other$resultOptions != null : !this$resultOptions.equals(other$resultOptions));
    }

    protected boolean canEqual(Object other) {
        return other instanceof ExamineController;
    }

    public int hashCode() {
        int PRIME = 59;
        int result = 1;
        result = result * 59 + this.getPageSize();
        result = result * 59 + this.getDefaultPageCount();
        ObservableList<GetExamineOutData> $observableTableList = this.getObservableTableList();
        result = result * 59 + ($observableTableList == null ? 43 : $observableTableList.hashCode());
        ObservableList<GetExamineDetailOutData> $detailObservableTableList = this.getDetailObservableTableList();
        result = result * 59 + ($detailObservableTableList == null ? 43 : $detailObservableTableList.hashCode());
        ScrollPane $scrollPane = this.getScrollPane();
        result = result * 59 + ($scrollPane == null ? 43 : $scrollPane.hashCode());
        VBox $vBox = this.getVBox();
        result = result * 59 + ($vBox == null ? 43 : $vBox.hashCode());
        Button $enterBtn = this.getEnterBtn();
        result = result * 59 + ($enterBtn == null ? 43 : $enterBtn.hashCode());
        Button $approveBtn = this.getApproveBtn();
        result = result * 59 + ($approveBtn == null ? 43 : $approveBtn.hashCode());
        HBox $queryHbox = this.getQueryHbox();
        result = result * 59 + ($queryHbox == null ? 43 : $queryHbox.hashCode());
        HBox $queryHbox1 = this.getQueryHbox1();
        result = result * 59 + ($queryHbox1 == null ? 43 : $queryHbox1.hashCode());
        HBox $boxView = this.getBoxView();
        result = result * 59 + ($boxView == null ? 43 : $boxView.hashCode());
        TextField $voucherIdQuery = this.getVoucherIdQuery();
        result = result * 59 + ($voucherIdQuery == null ? 43 : $voucherIdQuery.hashCode());
        TextField $amountQuery = this.getAmountQuery();
        result = result * 59 + ($amountQuery == null ? 43 : $amountQuery.hashCode());
        TextField $bathCodeQuery = this.getBathCodeQuery();
        result = result * 59 + ($bathCodeQuery == null ? 43 : $bathCodeQuery.hashCode());
        TextField $productCodeQuery = this.getProductCodeQuery();
        result = result * 59 + ($productCodeQuery == null ? 43 : $productCodeQuery.hashCode());
        ChoiceBox<GsdcEmp> $acceptPeopleQuery = this.getAcceptPeopleQuery();
        result = result * 59 + ($acceptPeopleQuery == null ? 43 : $acceptPeopleQuery.hashCode());
        ChoiceBox<GsdcStatus> $statusQuery = this.getStatusQuery();
        result = result * 59 + ($statusQuery == null ? 43 : $statusQuery.hashCode());
        DatePicker $updateDateQuery = this.getUpdateDateQuery();
        result = result * 59 + ($updateDateQuery == null ? 43 : $updateDateQuery.hashCode());
        DatePicker $acceptDateQuery = this.getAcceptDateQuery();
        result = result * 59 + ($acceptDateQuery == null ? 43 : $acceptDateQuery.hashCode());
        TableView<GetExamineOutData> $tableView = this.getTableView();
        result = result * 59 + ($tableView == null ? 43 : $tableView.hashCode());
        TableView<GetExamineDetailOutData> $tableViewTwo = this.getTableViewTwo();
        result = result * 59 + ($tableViewTwo == null ? 43 : $tableViewTwo.hashCode());
        TableColumn<GetExamineOutData, CheckBox> $checkBox = this.getCheckBox();
        result = result * 59 + ($checkBox == null ? 43 : $checkBox.hashCode());
        TableColumn<GetExamineOutData, String> $index = this.getIndex();
        result = result * 59 + ($index == null ? 43 : $index.hashCode());
        TableColumn<GetExamineOutData, String> $gsehVoucherId = this.getGsehVoucherId();
        result = result * 59 + ($gsehVoucherId == null ? 43 : $gsehVoucherId.hashCode());
        TableColumn<GetExamineOutData, String> $gsehDate = this.getGsehDate();
        result = result * 59 + ($gsehDate == null ? 43 : $gsehDate.hashCode());
        TableColumn<GetExamineOutData, String> $gsehFrom = this.getGsehFrom();
        result = result * 59 + ($gsehFrom == null ? 43 : $gsehFrom.hashCode());
        TableColumn<GetExamineOutData, String> $gsehTo = this.getGsehTo();
        result = result * 59 + ($gsehTo == null ? 43 : $gsehTo.hashCode());
        TableColumn<GetExamineOutData, String> $gsehType = this.getGsehType();
        result = result * 59 + ($gsehType == null ? 43 : $gsehType.hashCode());
        TableColumn<GetExamineOutData, String> $gsehStatus = this.getGsehStatus();
        result = result * 59 + ($gsehStatus == null ? 43 : $gsehStatus.hashCode());
        TableColumn<GetExamineOutData, String> $gsehTotalAmt = this.getGsehTotalAmt();
        result = result * 59 + ($gsehTotalAmt == null ? 43 : $gsehTotalAmt.hashCode());
        TableColumn<GetExamineOutData, String> $gsehTotalQty = this.getGsehTotalQty();
        result = result * 59 + ($gsehTotalQty == null ? 43 : $gsehTotalQty.hashCode());
        TableColumn<GetExamineOutData, String> $gsehRemaks = this.getGsehRemaks();
        result = result * 59 + ($gsehRemaks == null ? 43 : $gsehRemaks.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedSerial = this.getGsedSerial();
        result = result * 59 + ($gsedSerial == null ? 43 : $gsedSerial.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedProId = this.getGsedProId();
        result = result * 59 + ($gsedProId == null ? 43 : $gsedProId.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proName = this.getProName();
        result = result * 59 + ($proName == null ? 43 : $proName.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proPrice = this.getProPrice();
        result = result * 59 + ($proPrice == null ? 43 : $proPrice.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedBatchNo = this.getGsedBatchNo();
        result = result * 59 + ($gsedBatchNo == null ? 43 : $gsedBatchNo.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedValidDate = this.getGsedValidDate();
        result = result * 59 + ($gsedValidDate == null ? 43 : $gsedValidDate.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedRecipientQty = this.getGsedRecipientQty();
        result = result * 59 + ($gsedRecipientQty == null ? 43 : $gsedRecipientQty.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedQualifiedQty = this.getGsedQualifiedQty();
        result = result * 59 + ($gsedQualifiedQty == null ? 43 : $gsedQualifiedQty.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedUnqualifiedQty = this.getGsedUnqualifiedQty();
        result = result * 59 + ($gsedUnqualifiedQty == null ? 43 : $gsedUnqualifiedQty.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedUnqualifiedCause = this.getGsedUnqualifiedCause();
        result = result * 59 + ($gsedUnqualifiedCause == null ? 43 : $gsedUnqualifiedCause.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedEmp = this.getGsedEmp();
        result = result * 59 + ($gsedEmp == null ? 43 : $gsedEmp.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedResult = this.getGsedResult();
        result = result * 59 + ($gsedResult == null ? 43 : $gsedResult.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proDate = this.getProDate();
        result = result * 59 + ($proDate == null ? 43 : $proDate.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proPlace = this.getProPlace();
        result = result * 59 + ($proPlace == null ? 43 : $proPlace.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proForm = this.getProForm();
        result = result * 59 + ($proForm == null ? 43 : $proForm.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proUnit = this.getProUnit();
        result = result * 59 + ($proUnit == null ? 43 : $proUnit.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proSpecs = this.getProSpecs();
        result = result * 59 + ($proSpecs == null ? 43 : $proSpecs.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proRegisterNo = this.getProRegisterNo();
        result = result * 59 + ($proRegisterNo == null ? 43 : $proRegisterNo.hashCode());
        TableColumn<GetExamineDetailOutData, String> $proFactoryName = this.getProFactoryName();
        result = result * 59 + ($proFactoryName == null ? 43 : $proFactoryName.hashCode());
        TableColumn<GetExamineDetailOutData, String> $gsedStockStatus = this.getGsedStockStatus();
        result = result * 59 + ($gsedStockStatus == null ? 43 : $gsedStockStatus.hashCode());
        Pagination $pagination = this.getPagination();
        result = result * 59 + ($pagination == null ? 43 : $pagination.hashCode());
        Insets $tableViewInsets = this.getTableViewInsets();
        result = result * 59 + ($tableViewInsets == null ? 43 : $tableViewInsets.hashCode());
        IndexController $indexController = this.getIndexController();
        result = result * 59 + ($indexController == null ? 43 : ($indexController).hashCode());
        List<GetUserOutData> $outDataList = this.getOutDataList();
        result = result * 59 + ($outDataList == null ? 43 : ($outDataList).hashCode());
        ObservableList<String> $empOptions = this.getEmpOptions();
        result = result * 59 + ($empOptions == null ? 43 : $empOptions.hashCode());
        List<String> $emps = this.getEmps();
        result = result * 59 + ($emps == null ? 43 : ($emps).hashCode());
        Map<String, GetUserOutData> $empsMap = this.getEmpsMap();
        result = result * 59 + ($empsMap == null ? 43 : ($empsMap).hashCode());
        ObservableList<KeyValue> $reasonOptions = this.getReasonOptions();
        result = result * 59 + ($reasonOptions == null ? 43 : $reasonOptions.hashCode());
        ObservableList<KeyValue> $resultOptions = this.getResultOptions();
        result = result * 59 + ($resultOptions == null ? 43 : $resultOptions.hashCode());
        return result;
    }

    public String toString() {
        return "ExamineController(pageSize=" + this.getPageSize() + ", defaultPageCount=" + this.getDefaultPageCount() + ", observableTableList=" + this.getObservableTableList() + ", detailObservableTableList=" + this.getDetailObservableTableList() + ", scrollPane=" + this.getScrollPane() + ", vBox=" + this.getVBox() + ", enterBtn=" + this.getEnterBtn() + ", approveBtn=" + this.getApproveBtn() + ", queryHbox=" + this.getQueryHbox() + ", queryHbox1=" + this.getQueryHbox1() + ", boxView=" + this.getBoxView() + ", voucherIdQuery=" + this.getVoucherIdQuery() + ", amountQuery=" + this.getAmountQuery() + ", bathCodeQuery=" + this.getBathCodeQuery() + ", productCodeQuery=" + this.getProductCodeQuery() + ", acceptPeopleQuery=" + this.getAcceptPeopleQuery() + ", statusQuery=" + this.getStatusQuery() + ", updateDateQuery=" + this.getUpdateDateQuery() + ", acceptDateQuery=" + this.getAcceptDateQuery() + ", tableView=" + this.getTableView() + ", tableViewTwo=" + this.getTableViewTwo() + ", checkBox=" + this.getCheckBox() + ", index=" + this.getIndex() + ", gsehVoucherId=" + this.getGsehVoucherId() + ", gsehDate=" + this.getGsehDate() + ", gsehFrom=" + this.getGsehFrom() + ", gsehTo=" + this.getGsehTo() + ", gsehType=" + this.getGsehType() + ", gsehStatus=" + this.getGsehStatus() + ", gsehTotalAmt=" + this.getGsehTotalAmt() + ", gsehTotalQty=" + this.getGsehTotalQty() + ", gsehRemaks=" + this.getGsehRemaks() + ", gsedSerial=" + this.getGsedSerial() + ", gsedProId=" + this.getGsedProId() + ", proName=" + this.getProName() + ", proPrice=" + this.getProPrice() + ", gsedBatchNo=" + this.getGsedBatchNo() + ", gsedValidDate=" + this.getGsedValidDate() + ", gsedRecipientQty=" + this.getGsedRecipientQty() + ", gsedQualifiedQty=" + this.getGsedQualifiedQty() + ", gsedUnqualifiedQty=" + this.getGsedUnqualifiedQty() + ", gsedUnqualifiedCause=" + this.getGsedUnqualifiedCause() + ", gsedEmp=" + this.getGsedEmp() + ", gsedResult=" + this.getGsedResult() + ", proDate=" + this.getProDate() + ", proPlace=" + this.getProPlace() + ", proForm=" + this.getProForm() + ", proUnit=" + this.getProUnit() + ", proSpecs=" + this.getProSpecs() + ", proRegisterNo=" + this.getProRegisterNo() + ", proFactoryName=" + this.getProFactoryName() + ", gsedStockStatus=" + this.getGsedStockStatus() + ", pagination=" + this.getPagination() + ", tableViewInsets=" + this.getTableViewInsets() + ", indexController=" + this.getIndexController() + ", outDataList=" + this.getOutDataList() + ", empOptions=" + this.getEmpOptions() + ", emps=" + this.getEmps() + ", empsMap=" + this.getEmpsMap() + ", reasonOptions=" + this.getReasonOptions() + ", resultOptions=" + this.getResultOptions() + ")";
    }

}

